' Generado por Luis Molina.
' para la serializacion
Imports System.Xml.Serialization
Imports System.IO

' el xmlSerializer necesita saber los tipos tabla y campos
<XmlInclude(GetType(foreignKeyCollection)), XmlInclude(GetType(foreignKey)), XmlInclude(GetType(campo)), XmlInclude(GetType(tabla)), XmlInclude(GetType(campo)), XmlInclude(GetType(tablaCollection)), Serializable()> _
Public Class proyectos

#Region "Variables del proyecto"

    Private s_idProyectos As New Integer

    Private s_nombre As New String("")

    ' directorio donde esta el proyecto de visual basic por ejemplo
    Private s_directorioAplicacion As New String("")

    
    ' directorio fisico donde esta la bd
    ' si la bd es sql server este es el nombre de la bd
    Private s_database As New String("")

    ' archivo fisico donde se guardan los datos del proyecto
    Private s_archivo As New String("")

    'Private s_nombredns As New String("")

    Private s_usuario As New String("")

    Private s_clave As New String("")

    Private s_servidor As New String("")


    ' collectionlist de tablas
    Private s_tablas As New tablaCollection


    ' arrayList de relaciones foraneas
    '  Private s_relacionesForaneas As New ArrayList


    ' arrayList de relaciones foraneas
    Private s_ForeignKeys As New foreignKeyCollection


    ' arraylist de unoAmuchos
    '  Private s_unoAmuchosCollection As New unoAmuchosCollection 'unoAmuchos("", "")

    ' arraylist de muchosAuno
    ' Private s_muchosAunoCollection As New muchosAunoCollection 'unoAmuchos("", "")


    Private s_tiposBd As Integer 'tiposBd

    ' SqlServer = 0
    ' SqlServerMobile = 1
    ' Access = 2
    ' Oracle = 3
    ' DB2 = 4
    ' MySql = 5
    ' ISeries = 6
    ' Excel = 7
    ' TextCsv = 8
#End Region



    Public Sub New()

    End Sub

#Region "Propiedades principales de la bd"

    ''' <summary>
    ''' Gets or sets the nombre.
    ''' </summary>
    ''' <value>The nombre.</value>

    Public Property nombre() As String
        Get
            Return s_nombre
        End Get
        Set(ByVal Value As String)
            s_nombre = Value
        End Set
    End Property


    Public Property tipoBd() As Integer
        Get
            Return s_tiposBd
        End Get
        Set(ByVal Value As Integer)
            s_tiposBd = Value
        End Set
    End Property

    Public Property directorioAplicacion() As String
        Get
            Return s_directorioAplicacion
        End Get
        Set(ByVal Value As String)
            s_directorioAplicacion = Value
        End Set
    End Property


    Public Property database() As String
        Get
            Return s_database
        End Get
        Set(ByVal Value As String)
            s_database = Value
        End Set
    End Property

    Public Property archivo() As String
        Get
            Return s_archivo
        End Get
        Set(ByVal Value As String)
            s_archivo = Value
        End Set
    End Property

    'Public Property nombreDns() As String
    '    Get
    '        Return s_nombredns
    '    End Get
    '    Set(ByVal Value As String)
    '        s_nombredns = Value
    '    End Set
    'End Property

    Public Property usuario() As String
        Get
            Return s_usuario
        End Get
        Set(ByVal Value As String)
            s_usuario = Value
        End Set
    End Property

    Public Property clave() As String
        Get
            Return s_clave
        End Get
        Set(ByVal Value As String)
            s_clave = Value
        End Set
    End Property


    Public Property servidor() As String
        Get
            Return s_servidor
        End Get
        Set(ByVal Value As String)
            s_servidor = Value
        End Set
    End Property
#End Region

#Region "Propiedades extra"
    ' devuelve el numero de tablas
    'Public ReadOnly Property numTablas() As Integer
    '    Get
    '        Return s_tablas.
    '    End Get
    'End Property

    Public ReadOnly Property tablas() As tablaCollection
        Get
            Return s_tablas
        End Get
        'Set(ByVal Value As ArrayList)
        '    s_tablas = Value
        'End Set
    End Property


    'Public ReadOnly Property numRelacionesForaneas() As Integer
    '    Get
    '        Return s_relacionesForaneas.Count
    '    End Get
    'End Property

    'Public Property relacionesForaneas() As ArrayList
    '    Get
    '        Return s_relacionesForaneas
    '    End Get
    '    Set(ByVal Value As ArrayList)
    '        s_relacionesForaneas = Value
    '    End Set
    'End Property


    'Public Property idProyectos() As Integer
    '    Get
    '        Return s_idProyectos
    '    End Get
    '    Set(ByVal Value As Integer)
    '        s_idProyectos = Value
    '    End Set
    'End Property

    Public Property foreignKeys() As foreignKeyCollection
        Get
            Return s_foreignKeys
        End Get
        Set(ByVal Value As foreignKeyCollection)
            s_foreignKeys = Value
        End Set
    End Property

   


#End Region


    ''' <summary>
    ''' Grabars the proyecto.
    ''' </summary>
    ''' <param name="nombreArchivo">The nombre archivo.</param>
    Public Sub grabarProyecto(ByVal nombreArchivo As String)
        'Try

        '    Dim olf As New System.Web.UI.LosFormatter
        '    Dim sw As New System.IO.FileStream("./proyectos/" + nombreArchivo + ".proy", FileMode.OpenOrCreate)
        '    olf.Serialize(sw, Me)
        '    sw.Close()
        'Catch ex As Exception

        'End Try
    End Sub

    Public Function cargarProyecto(ByVal nombreArchivo As String) As proyectos
        'Try
        '    Dim pro As New proyectos
        '    Dim olf As New System.Web.UI.LosFormatter
        '    Dim sw As New System.IO.FileStream("./pro.txt", FileMode.OpenOrCreate)
        '    pro = olf.Deserialize(sw)
        '    sw.Close()
        '    Return pro

        'Catch ex As Exception

        'End Try
    End Function

End Class

